package org.dmd.wsdl.server.generated.dmw;

// Generated from: org.dmd.util.codegen.ImportManager.getFormattedImports(ImportManager.java:82)
// Called from: org.dmd.dmg.generators.BaseDMWGenerator.dumpWrapper(BaseDMWGenerator.java:442)
import org.dmd.dmc.*;                                                  // If any attributes - (BaseDMWGenerator.java:1087)
import org.dmd.dmc.definitions.DmcDefinitionIF;                        // The object is a domain specific definition - (BaseDMWGenerator.java:411)
import org.dmd.dmc.types.DefinitionName;                               // Is named by - (BaseDMWGenerator.java:1062)
import org.dmd.dms.ClassDefinition;                                    // Passing derived class def up the hierarchy - (BaseDMWGenerator.java:1067)
import org.dmd.dms.generated.dmo.MetaDMSAG;                            // Required for MODREC constructor - (BaseDMWGenerator.java:1072)
import org.dmd.dms.generated.types.DmcTypeModifierMV;                  // Required for MODREC constructor - (BaseDMWGenerator.java:1071)
import org.dmd.wsdl.server.extended.WsdlBinding;                       // Required for getModificationRecorder() - (BaseDMWGenerator.java:1076)
import org.dmd.wsdl.server.extended.WsdlDefinition;                    // Derived class - (BaseDMWGenerator.java:1248)
import org.dmd.wsdl.shared.generated.dmo.WsdlBindingDMO;               // Class not auxiliary or abstract - (BaseDMWGenerator.java:1252)
import org.dmd.wsdl.shared.generated.types.InterfaceReference;         // Primitive type - (BaseDMWGenerator.java:1150)
import org.dmd.wsdl.shared.generated.types.ProtocolReference;          // Primitive type - (BaseDMWGenerator.java:1150)
import org.dmd.wsdl.shared.generated.types.WsdlModuleREF;              // Required to access defined in module name - (DMWGenerator.java:180)



/**
 * A binding specifies concrete message format and transmission protocol
 * details for an interface,\n and must supply such details for every
 * operation and fault in the interface.
 * <P>
 * Generated from the dmwsdl schema at version unknown
 * <P>
 * This code was auto-generated by the dmggenerator utility and shouldn't be alterred manually!
 * Generated from: org.dmd.dmg.generators.BaseDMWGenerator.dumpWrapper(BaseDMWGenerator.java:479)
 */
abstract public class WsdlBindingDMW extends WsdlDefinition implements DmcDefinitionIF, DmcNamedObjectIF {

    // Generated from: org.dmd.dmg.generators.BaseDMWGenerator.dumpWrapper(BaseDMWGenerator.java:558)
    public WsdlBindingDMW() {
        super(new WsdlBindingDMO(), org.dmd.wsdl.server.generated.DmwsdlSchemaAG._WsdlBinding);
    }

    // Generated from: org.dmd.dmg.generators.BaseDMWGenerator.dumpWrapper(BaseDMWGenerator.java:564)
    public WsdlBindingDMW(DmcTypeModifierMV mods) {
        super(new WsdlBindingDMO(mods), org.dmd.wsdl.server.generated.DmwsdlSchemaAG._WsdlBinding);
    }

    // Generated from: org.dmd.dmg.generators.BaseDMWGenerator.dumpWrapper(BaseDMWGenerator.java:606)
    public WsdlBinding getModificationRecorder(){
        WsdlBinding rc = new WsdlBinding();
        rc.setName(getName());
        rc.setModifier(new DmcTypeModifierMV(MetaDMSAG.__modify));
        return(rc);
    }

    // Generated from: org.dmd.dmg.generators.BaseDMWGenerator.dumpWrapper(BaseDMWGenerator.java:627)
    public WsdlBindingDMW(WsdlBindingDMO obj) {
        super(obj, org.dmd.wsdl.server.generated.DmwsdlSchemaAG._WsdlBinding);
    }

    public WsdlBinding cloneIt() {
        WsdlBinding rc = new WsdlBinding();
        rc.setDmcObject(getDMO().cloneIt());
        return(rc);
    }

    public WsdlBindingDMO getDMO() {
        return((WsdlBindingDMO) core);
    }

    // Generated from: org.dmd.dmg.generators.BaseDMWGenerator.dumpWrapper(BaseDMWGenerator.java:642)
    protected WsdlBindingDMW(WsdlBindingDMO obj, ClassDefinition cd) {
        super(obj,cd);
    }

    // org.dmd.dmg.generators.BaseDMWGenerator.getAccessFunctions(BaseDMWGenerator.java:1297)
    public DefinitionName getObjectName(){
        return(((WsdlBindingDMO) core).getName());
    }

    public int hashCode(){
        return(getObjectName().hashCode());
    }

    public DmcAttribute<?> getObjectNameAttribute(){
        return(((WsdlBindingDMO) core).getObjectNameAttribute());
    }

    public boolean equals(Object obj){
        if (obj instanceof WsdlBindingDMW){
            return( getObjectName().equals( ((WsdlBindingDMW) obj).getObjectName()) );
        }
        return(false);
    }

    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1474)
    public String getBindingType(){
        return(((WsdlBindingDMO) core).getBindingType());
    }

    /**
     * Sets bindingType to the specified value.
     * @param value A value compatible with DmcTypeString
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1584)
    public void setBindingType(Object value) throws DmcValueException {
        ((WsdlBindingDMO) core).setBindingType(value);
    }

    /**
     * Sets bindingType to the specified value.
     * @param value String
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1593)
    public void setBindingType(String value){
        ((WsdlBindingDMO) core).setBindingType(value);
    }

    /**
     * Removes the bindingType attribute value.
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1619)
    public void remBindingType(){
        ((WsdlBindingDMO) core).remBindingType();
    }

    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1474)
    public InterfaceReference getInterface(){
        return(((WsdlBindingDMO) core).getInterface());
    }

    /**
     * Sets interface to the specified value.
     * @param value A value compatible with DmcTypeInterfaceReference
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1584)
    public void setInterface(Object value) throws DmcValueException {
        ((WsdlBindingDMO) core).setInterface(value);
    }

    /**
     * Sets interface to the specified value.
     * @param value InterfaceReference
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1593)
    public void setInterface(InterfaceReference value){
        ((WsdlBindingDMO) core).setInterface(value);
    }

    /**
     * Removes the interface attribute value.
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1619)
    public void remInterface(){
        ((WsdlBindingDMO) core).remInterface();
    }

    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1474)
    public DefinitionName getName(){
        return(((WsdlBindingDMO) core).getName());
    }

    /**
     * Sets name to the specified value.
     * @param value A value compatible with DmcTypeDefinitionName
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1584)
    public void setName(Object value) throws DmcValueException {
        ((WsdlBindingDMO) core).setName(value);
    }

    /**
     * Sets name to the specified value.
     * @param value DefinitionName
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1593)
    public void setName(DefinitionName value){
        ((WsdlBindingDMO) core).setName(value);
    }

    /**
     * Removes the name attribute value.
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1619)
    public void remName(){
        ((WsdlBindingDMO) core).remName();
    }

    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1474)
    public ProtocolReference getProtocol(){
        return(((WsdlBindingDMO) core).getProtocol());
    }

    /**
     * Sets protocol to the specified value.
     * @param value A value compatible with DmcTypeProtocolReference
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1584)
    public void setProtocol(Object value) throws DmcValueException {
        ((WsdlBindingDMO) core).setProtocol(value);
    }

    /**
     * Sets protocol to the specified value.
     * @param value ProtocolReference
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1593)
    public void setProtocol(ProtocolReference value){
        ((WsdlBindingDMO) core).setProtocol(value);
    }

    /**
     * Removes the protocol attribute value.
     */
    // org.dmd.dmg.generators.BaseDMWGenerator.formatSV(BaseDMWGenerator.java:1619)
    public void remProtocol(){
        ((WsdlBindingDMO) core).remProtocol();
    }

    // Generated from: org.dmd.dmg.generators.DMWGenerator.dumpAdditionalWrapperFunctions(DMWGenerator.java:221)
    /**
     * This method indicates the name of the module from which this definition was loaded.
     */
    @Override
    public String getNameOfModuleWhereThisCameFrom(){
        WsdlModuleREF ref = ((WsdlBindingDMO) core).getDefinedInWsdlModule();
        return(ref.getName().getNameString());
    }


}
